package com.ecoolex.hotel.saas.entity;

import com.ecoolex.framework.common.annotation.Description;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.lang.NonNull;

public class PresaleCouponExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    protected Integer offset;

    protected Integer rows;

    public PresaleCouponExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public PresaleCouponExample orderBy(String orderByClause) {
        this.setOrderByClause(orderByClause);
        return this;
    }

    public PresaleCouponExample orderBy(String ... orderByClauses) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < orderByClauses.length; i++) {
            sb.append(orderByClauses[i]);
            if (i < orderByClauses.length - 1) {
                sb.append(" , ");
            }
        }
        this.setOrderByClause(sb.toString());
        return this;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria(this);
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
        rows = null;
        offset = null;
    }

    public static Criteria newAndCreateCriteria() {
        PresaleCouponExample example = new PresaleCouponExample();
        return example.createCriteria();
    }

    public PresaleCouponExample when(boolean condition, IExampleWhen then) {
        if (condition) {
            then.example(this);
        }
        return this;
    }

    public PresaleCouponExample when(boolean condition, IExampleWhen then, IExampleWhen otherwise) {
        if (condition) {
            then.example(this);
        } else {
            otherwise.example(this);
        }
        return this;
    }

    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    public Integer getOffset() {
        return this.offset;
    }

    public void setRows(Integer rows) {
        this.rows = rows;
    }

    public Integer getRows() {
        return this.rows;
    }

    public PresaleCouponExample limit(Integer rows) {
        this.rows = rows;
        return this;
    }

    public PresaleCouponExample limit(Integer offset, Integer rows) {
        this.offset = offset;
        this.rows = rows;
        return this;
    }

    public PresaleCouponExample page(Integer page, Integer pageSize) {
        this.offset = page * pageSize;
        this.rows = pageSize;
        return this;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andPreCouponIdIsNull() {
            addCriterion("presalecoupon.PreCouponId is null");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdIsNotNull() {
            addCriterion("presalecoupon.PreCouponId is not null");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdEqualTo(Integer value) {
            addCriterion("presalecoupon.PreCouponId =", value, "preCouponId");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.PreCouponId = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andPreCouponIdNotEqualTo(Integer value) {
            addCriterion("presalecoupon.PreCouponId <>", value, "preCouponId");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.PreCouponId <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andPreCouponIdGreaterThan(Integer value) {
            addCriterion("presalecoupon.PreCouponId >", value, "preCouponId");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.PreCouponId > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andPreCouponIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.PreCouponId >=", value, "preCouponId");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.PreCouponId >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andPreCouponIdLessThan(Integer value) {
            addCriterion("presalecoupon.PreCouponId <", value, "preCouponId");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.PreCouponId < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andPreCouponIdLessThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.PreCouponId <=", value, "preCouponId");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.PreCouponId <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andPreCouponIdIn(List<Integer> values) {
            addCriterion("presalecoupon.PreCouponId in", values, "preCouponId");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdNotIn(List<Integer> values) {
            addCriterion("presalecoupon.PreCouponId not in", values, "preCouponId");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.PreCouponId between", value1, value2, "preCouponId");
            return (Criteria) this;
        }

        public Criteria andPreCouponIdNotBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.PreCouponId not between", value1, value2, "preCouponId");
            return (Criteria) this;
        }

        public Criteria andStoreIdIsNull() {
            addCriterion("presalecoupon.StoreId is null");
            return (Criteria) this;
        }

        public Criteria andStoreIdIsNotNull() {
            addCriterion("presalecoupon.StoreId is not null");
            return (Criteria) this;
        }

        public Criteria andStoreIdEqualTo(Integer value) {
            addCriterion("presalecoupon.StoreId =", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StoreId = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStoreIdNotEqualTo(Integer value) {
            addCriterion("presalecoupon.StoreId <>", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StoreId <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStoreIdGreaterThan(Integer value) {
            addCriterion("presalecoupon.StoreId >", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StoreId > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStoreIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.StoreId >=", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StoreId >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStoreIdLessThan(Integer value) {
            addCriterion("presalecoupon.StoreId <", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StoreId < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStoreIdLessThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.StoreId <=", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StoreId <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStoreIdIn(List<Integer> values) {
            addCriterion("presalecoupon.StoreId in", values, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdNotIn(List<Integer> values) {
            addCriterion("presalecoupon.StoreId not in", values, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.StoreId between", value1, value2, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdNotBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.StoreId not between", value1, value2, "storeId");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("presalecoupon.`Name` is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("presalecoupon.`Name` is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("presalecoupon.`Name` =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Name` = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("presalecoupon.`Name` <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Name` <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("presalecoupon.`Name` >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Name` > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.`Name` >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Name` >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("presalecoupon.`Name` <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Name` < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.`Name` <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Name` <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("presalecoupon.`Name` like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("presalecoupon.`Name` not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("presalecoupon.`Name` in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("presalecoupon.`Name` not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("presalecoupon.`Name` between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.`Name` not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andSubNameIsNull() {
            addCriterion("presalecoupon.SubName is null");
            return (Criteria) this;
        }

        public Criteria andSubNameIsNotNull() {
            addCriterion("presalecoupon.SubName is not null");
            return (Criteria) this;
        }

        public Criteria andSubNameEqualTo(String value) {
            addCriterion("presalecoupon.SubName =", value, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SubName = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSubNameNotEqualTo(String value) {
            addCriterion("presalecoupon.SubName <>", value, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SubName <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSubNameGreaterThan(String value) {
            addCriterion("presalecoupon.SubName >", value, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SubName > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSubNameGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.SubName >=", value, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SubName >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSubNameLessThan(String value) {
            addCriterion("presalecoupon.SubName <", value, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SubName < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSubNameLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.SubName <=", value, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SubName <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSubNameLike(String value) {
            addCriterion("presalecoupon.SubName like", value, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameNotLike(String value) {
            addCriterion("presalecoupon.SubName not like", value, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameIn(List<String> values) {
            addCriterion("presalecoupon.SubName in", values, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameNotIn(List<String> values) {
            addCriterion("presalecoupon.SubName not in", values, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameBetween(String value1, String value2) {
            addCriterion("presalecoupon.SubName between", value1, value2, "subName");
            return (Criteria) this;
        }

        public Criteria andSubNameNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.SubName not between", value1, value2, "subName");
            return (Criteria) this;
        }

        public Criteria andCounterPriceIsNull() {
            addCriterion("presalecoupon.CounterPrice is null");
            return (Criteria) this;
        }

        public Criteria andCounterPriceIsNotNull() {
            addCriterion("presalecoupon.CounterPrice is not null");
            return (Criteria) this;
        }

        public Criteria andCounterPriceEqualTo(BigDecimal value) {
            addCriterion("presalecoupon.CounterPrice =", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CounterPrice = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceNotEqualTo(BigDecimal value) {
            addCriterion("presalecoupon.CounterPrice <>", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CounterPrice <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceGreaterThan(BigDecimal value) {
            addCriterion("presalecoupon.CounterPrice >", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CounterPrice > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("presalecoupon.CounterPrice >=", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CounterPrice >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceLessThan(BigDecimal value) {
            addCriterion("presalecoupon.CounterPrice <", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CounterPrice < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("presalecoupon.CounterPrice <=", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CounterPrice <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceIn(List<BigDecimal> values) {
            addCriterion("presalecoupon.CounterPrice in", values, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceNotIn(List<BigDecimal> values) {
            addCriterion("presalecoupon.CounterPrice not in", values, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("presalecoupon.CounterPrice between", value1, value2, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("presalecoupon.CounterPrice not between", value1, value2, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andRealPriceIsNull() {
            addCriterion("presalecoupon.RealPrice is null");
            return (Criteria) this;
        }

        public Criteria andRealPriceIsNotNull() {
            addCriterion("presalecoupon.RealPrice is not null");
            return (Criteria) this;
        }

        public Criteria andRealPriceEqualTo(BigDecimal value) {
            addCriterion("presalecoupon.RealPrice =", value, "realPrice");
            return (Criteria) this;
        }

        public Criteria andRealPriceEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RealPrice = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRealPriceNotEqualTo(BigDecimal value) {
            addCriterion("presalecoupon.RealPrice <>", value, "realPrice");
            return (Criteria) this;
        }

        public Criteria andRealPriceNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RealPrice <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRealPriceGreaterThan(BigDecimal value) {
            addCriterion("presalecoupon.RealPrice >", value, "realPrice");
            return (Criteria) this;
        }

        public Criteria andRealPriceGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RealPrice > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRealPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("presalecoupon.RealPrice >=", value, "realPrice");
            return (Criteria) this;
        }

        public Criteria andRealPriceGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RealPrice >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRealPriceLessThan(BigDecimal value) {
            addCriterion("presalecoupon.RealPrice <", value, "realPrice");
            return (Criteria) this;
        }

        public Criteria andRealPriceLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RealPrice < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRealPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("presalecoupon.RealPrice <=", value, "realPrice");
            return (Criteria) this;
        }

        public Criteria andRealPriceLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RealPrice <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRealPriceIn(List<BigDecimal> values) {
            addCriterion("presalecoupon.RealPrice in", values, "realPrice");
            return (Criteria) this;
        }

        public Criteria andRealPriceNotIn(List<BigDecimal> values) {
            addCriterion("presalecoupon.RealPrice not in", values, "realPrice");
            return (Criteria) this;
        }

        public Criteria andRealPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("presalecoupon.RealPrice between", value1, value2, "realPrice");
            return (Criteria) this;
        }

        public Criteria andRealPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("presalecoupon.RealPrice not between", value1, value2, "realPrice");
            return (Criteria) this;
        }

        public Criteria andStockNumberIsNull() {
            addCriterion("presalecoupon.StockNumber is null");
            return (Criteria) this;
        }

        public Criteria andStockNumberIsNotNull() {
            addCriterion("presalecoupon.StockNumber is not null");
            return (Criteria) this;
        }

        public Criteria andStockNumberEqualTo(Integer value) {
            addCriterion("presalecoupon.StockNumber =", value, "stockNumber");
            return (Criteria) this;
        }

        public Criteria andStockNumberEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StockNumber = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStockNumberNotEqualTo(Integer value) {
            addCriterion("presalecoupon.StockNumber <>", value, "stockNumber");
            return (Criteria) this;
        }

        public Criteria andStockNumberNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StockNumber <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStockNumberGreaterThan(Integer value) {
            addCriterion("presalecoupon.StockNumber >", value, "stockNumber");
            return (Criteria) this;
        }

        public Criteria andStockNumberGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StockNumber > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStockNumberGreaterThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.StockNumber >=", value, "stockNumber");
            return (Criteria) this;
        }

        public Criteria andStockNumberGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StockNumber >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStockNumberLessThan(Integer value) {
            addCriterion("presalecoupon.StockNumber <", value, "stockNumber");
            return (Criteria) this;
        }

        public Criteria andStockNumberLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StockNumber < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStockNumberLessThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.StockNumber <=", value, "stockNumber");
            return (Criteria) this;
        }

        public Criteria andStockNumberLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.StockNumber <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStockNumberIn(List<Integer> values) {
            addCriterion("presalecoupon.StockNumber in", values, "stockNumber");
            return (Criteria) this;
        }

        public Criteria andStockNumberNotIn(List<Integer> values) {
            addCriterion("presalecoupon.StockNumber not in", values, "stockNumber");
            return (Criteria) this;
        }

        public Criteria andStockNumberBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.StockNumber between", value1, value2, "stockNumber");
            return (Criteria) this;
        }

        public Criteria andStockNumberNotBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.StockNumber not between", value1, value2, "stockNumber");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberIsNull() {
            addCriterion("presalecoupon.UsedStockNumber is null");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberIsNotNull() {
            addCriterion("presalecoupon.UsedStockNumber is not null");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberEqualTo(Integer value) {
            addCriterion("presalecoupon.UsedStockNumber =", value, "usedStockNumber");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UsedStockNumber = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberNotEqualTo(Integer value) {
            addCriterion("presalecoupon.UsedStockNumber <>", value, "usedStockNumber");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UsedStockNumber <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberGreaterThan(Integer value) {
            addCriterion("presalecoupon.UsedStockNumber >", value, "usedStockNumber");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UsedStockNumber > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberGreaterThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.UsedStockNumber >=", value, "usedStockNumber");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UsedStockNumber >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberLessThan(Integer value) {
            addCriterion("presalecoupon.UsedStockNumber <", value, "usedStockNumber");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UsedStockNumber < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberLessThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.UsedStockNumber <=", value, "usedStockNumber");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UsedStockNumber <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberIn(List<Integer> values) {
            addCriterion("presalecoupon.UsedStockNumber in", values, "usedStockNumber");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberNotIn(List<Integer> values) {
            addCriterion("presalecoupon.UsedStockNumber not in", values, "usedStockNumber");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.UsedStockNumber between", value1, value2, "usedStockNumber");
            return (Criteria) this;
        }

        public Criteria andUsedStockNumberNotBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.UsedStockNumber not between", value1, value2, "usedStockNumber");
            return (Criteria) this;
        }

        public Criteria andSaleNumberIsNull() {
            addCriterion("presalecoupon.SaleNumber is null");
            return (Criteria) this;
        }

        public Criteria andSaleNumberIsNotNull() {
            addCriterion("presalecoupon.SaleNumber is not null");
            return (Criteria) this;
        }

        public Criteria andSaleNumberEqualTo(Integer value) {
            addCriterion("presalecoupon.SaleNumber =", value, "saleNumber");
            return (Criteria) this;
        }

        public Criteria andSaleNumberEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleNumber = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleNumberNotEqualTo(Integer value) {
            addCriterion("presalecoupon.SaleNumber <>", value, "saleNumber");
            return (Criteria) this;
        }

        public Criteria andSaleNumberNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleNumber <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleNumberGreaterThan(Integer value) {
            addCriterion("presalecoupon.SaleNumber >", value, "saleNumber");
            return (Criteria) this;
        }

        public Criteria andSaleNumberGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleNumber > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleNumberGreaterThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.SaleNumber >=", value, "saleNumber");
            return (Criteria) this;
        }

        public Criteria andSaleNumberGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleNumber >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleNumberLessThan(Integer value) {
            addCriterion("presalecoupon.SaleNumber <", value, "saleNumber");
            return (Criteria) this;
        }

        public Criteria andSaleNumberLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleNumber < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleNumberLessThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.SaleNumber <=", value, "saleNumber");
            return (Criteria) this;
        }

        public Criteria andSaleNumberLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleNumber <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleNumberIn(List<Integer> values) {
            addCriterion("presalecoupon.SaleNumber in", values, "saleNumber");
            return (Criteria) this;
        }

        public Criteria andSaleNumberNotIn(List<Integer> values) {
            addCriterion("presalecoupon.SaleNumber not in", values, "saleNumber");
            return (Criteria) this;
        }

        public Criteria andSaleNumberBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.SaleNumber between", value1, value2, "saleNumber");
            return (Criteria) this;
        }

        public Criteria andSaleNumberNotBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.SaleNumber not between", value1, value2, "saleNumber");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeIsNull() {
            addCriterion("presalecoupon.SaleStartTime is null");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeIsNotNull() {
            addCriterion("presalecoupon.SaleStartTime is not null");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeEqualTo(Date value) {
            addCriterion("presalecoupon.SaleStartTime =", value, "saleStartTime");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleStartTime = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeNotEqualTo(Date value) {
            addCriterion("presalecoupon.SaleStartTime <>", value, "saleStartTime");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleStartTime <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeGreaterThan(Date value) {
            addCriterion("presalecoupon.SaleStartTime >", value, "saleStartTime");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleStartTime > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("presalecoupon.SaleStartTime >=", value, "saleStartTime");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleStartTime >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeLessThan(Date value) {
            addCriterion("presalecoupon.SaleStartTime <", value, "saleStartTime");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleStartTime < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeLessThanOrEqualTo(Date value) {
            addCriterion("presalecoupon.SaleStartTime <=", value, "saleStartTime");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleStartTime <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeIn(List<Date> values) {
            addCriterion("presalecoupon.SaleStartTime in", values, "saleStartTime");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeNotIn(List<Date> values) {
            addCriterion("presalecoupon.SaleStartTime not in", values, "saleStartTime");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeBetween(Date value1, Date value2) {
            addCriterion("presalecoupon.SaleStartTime between", value1, value2, "saleStartTime");
            return (Criteria) this;
        }

        public Criteria andSaleStartTimeNotBetween(Date value1, Date value2) {
            addCriterion("presalecoupon.SaleStartTime not between", value1, value2, "saleStartTime");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeIsNull() {
            addCriterion("presalecoupon.SaleEndTime is null");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeIsNotNull() {
            addCriterion("presalecoupon.SaleEndTime is not null");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeEqualTo(Date value) {
            addCriterion("presalecoupon.SaleEndTime =", value, "saleEndTime");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleEndTime = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeNotEqualTo(Date value) {
            addCriterion("presalecoupon.SaleEndTime <>", value, "saleEndTime");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleEndTime <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeGreaterThan(Date value) {
            addCriterion("presalecoupon.SaleEndTime >", value, "saleEndTime");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleEndTime > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("presalecoupon.SaleEndTime >=", value, "saleEndTime");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleEndTime >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeLessThan(Date value) {
            addCriterion("presalecoupon.SaleEndTime <", value, "saleEndTime");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleEndTime < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("presalecoupon.SaleEndTime <=", value, "saleEndTime");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.SaleEndTime <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeIn(List<Date> values) {
            addCriterion("presalecoupon.SaleEndTime in", values, "saleEndTime");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeNotIn(List<Date> values) {
            addCriterion("presalecoupon.SaleEndTime not in", values, "saleEndTime");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeBetween(Date value1, Date value2) {
            addCriterion("presalecoupon.SaleEndTime between", value1, value2, "saleEndTime");
            return (Criteria) this;
        }

        public Criteria andSaleEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("presalecoupon.SaleEndTime not between", value1, value2, "saleEndTime");
            return (Criteria) this;
        }

        public Criteria andCoverImageIsNull() {
            addCriterion("presalecoupon.CoverImage is null");
            return (Criteria) this;
        }

        public Criteria andCoverImageIsNotNull() {
            addCriterion("presalecoupon.CoverImage is not null");
            return (Criteria) this;
        }

        public Criteria andCoverImageEqualTo(String value) {
            addCriterion("presalecoupon.CoverImage =", value, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CoverImage = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCoverImageNotEqualTo(String value) {
            addCriterion("presalecoupon.CoverImage <>", value, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CoverImage <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCoverImageGreaterThan(String value) {
            addCriterion("presalecoupon.CoverImage >", value, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CoverImage > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCoverImageGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.CoverImage >=", value, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CoverImage >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCoverImageLessThan(String value) {
            addCriterion("presalecoupon.CoverImage <", value, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CoverImage < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCoverImageLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.CoverImage <=", value, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CoverImage <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCoverImageLike(String value) {
            addCriterion("presalecoupon.CoverImage like", value, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageNotLike(String value) {
            addCriterion("presalecoupon.CoverImage not like", value, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageIn(List<String> values) {
            addCriterion("presalecoupon.CoverImage in", values, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageNotIn(List<String> values) {
            addCriterion("presalecoupon.CoverImage not in", values, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageBetween(String value1, String value2) {
            addCriterion("presalecoupon.CoverImage between", value1, value2, "coverImage");
            return (Criteria) this;
        }

        public Criteria andCoverImageNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.CoverImage not between", value1, value2, "coverImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageIsNull() {
            addCriterion("presalecoupon.HeadImage is null");
            return (Criteria) this;
        }

        public Criteria andHeadImageIsNotNull() {
            addCriterion("presalecoupon.HeadImage is not null");
            return (Criteria) this;
        }

        public Criteria andHeadImageEqualTo(String value) {
            addCriterion("presalecoupon.HeadImage =", value, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.HeadImage = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andHeadImageNotEqualTo(String value) {
            addCriterion("presalecoupon.HeadImage <>", value, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.HeadImage <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andHeadImageGreaterThan(String value) {
            addCriterion("presalecoupon.HeadImage >", value, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.HeadImage > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andHeadImageGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.HeadImage >=", value, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.HeadImage >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andHeadImageLessThan(String value) {
            addCriterion("presalecoupon.HeadImage <", value, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.HeadImage < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andHeadImageLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.HeadImage <=", value, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.HeadImage <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andHeadImageLike(String value) {
            addCriterion("presalecoupon.HeadImage like", value, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageNotLike(String value) {
            addCriterion("presalecoupon.HeadImage not like", value, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageIn(List<String> values) {
            addCriterion("presalecoupon.HeadImage in", values, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageNotIn(List<String> values) {
            addCriterion("presalecoupon.HeadImage not in", values, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageBetween(String value1, String value2) {
            addCriterion("presalecoupon.HeadImage between", value1, value2, "headImage");
            return (Criteria) this;
        }

        public Criteria andHeadImageNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.HeadImage not between", value1, value2, "headImage");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNull() {
            addCriterion("presalecoupon.Description is null");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNotNull() {
            addCriterion("presalecoupon.Description is not null");
            return (Criteria) this;
        }

        public Criteria andDescriptionEqualTo(String value) {
            addCriterion("presalecoupon.Description =", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Description = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDescriptionNotEqualTo(String value) {
            addCriterion("presalecoupon.Description <>", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Description <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThan(String value) {
            addCriterion("presalecoupon.Description >", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Description > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.Description >=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Description >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThan(String value) {
            addCriterion("presalecoupon.Description <", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Description < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.Description <=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Description <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDescriptionLike(String value) {
            addCriterion("presalecoupon.Description like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotLike(String value) {
            addCriterion("presalecoupon.Description not like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionIn(List<String> values) {
            addCriterion("presalecoupon.Description in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotIn(List<String> values) {
            addCriterion("presalecoupon.Description not in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionBetween(String value1, String value2) {
            addCriterion("presalecoupon.Description between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.Description not between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andRefundExplainIsNull() {
            addCriterion("presalecoupon.RefundExplain is null");
            return (Criteria) this;
        }

        public Criteria andRefundExplainIsNotNull() {
            addCriterion("presalecoupon.RefundExplain is not null");
            return (Criteria) this;
        }

        public Criteria andRefundExplainEqualTo(String value) {
            addCriterion("presalecoupon.RefundExplain =", value, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RefundExplain = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRefundExplainNotEqualTo(String value) {
            addCriterion("presalecoupon.RefundExplain <>", value, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RefundExplain <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRefundExplainGreaterThan(String value) {
            addCriterion("presalecoupon.RefundExplain >", value, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RefundExplain > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRefundExplainGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.RefundExplain >=", value, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RefundExplain >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRefundExplainLessThan(String value) {
            addCriterion("presalecoupon.RefundExplain <", value, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RefundExplain < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRefundExplainLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.RefundExplain <=", value, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.RefundExplain <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRefundExplainLike(String value) {
            addCriterion("presalecoupon.RefundExplain like", value, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainNotLike(String value) {
            addCriterion("presalecoupon.RefundExplain not like", value, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainIn(List<String> values) {
            addCriterion("presalecoupon.RefundExplain in", values, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainNotIn(List<String> values) {
            addCriterion("presalecoupon.RefundExplain not in", values, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainBetween(String value1, String value2) {
            addCriterion("presalecoupon.RefundExplain between", value1, value2, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andRefundExplainNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.RefundExplain not between", value1, value2, "refundExplain");
            return (Criteria) this;
        }

        public Criteria andUseRuleIsNull() {
            addCriterion("presalecoupon.UseRule is null");
            return (Criteria) this;
        }

        public Criteria andUseRuleIsNotNull() {
            addCriterion("presalecoupon.UseRule is not null");
            return (Criteria) this;
        }

        public Criteria andUseRuleEqualTo(String value) {
            addCriterion("presalecoupon.UseRule =", value, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UseRule = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUseRuleNotEqualTo(String value) {
            addCriterion("presalecoupon.UseRule <>", value, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UseRule <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUseRuleGreaterThan(String value) {
            addCriterion("presalecoupon.UseRule >", value, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UseRule > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUseRuleGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.UseRule >=", value, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UseRule >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUseRuleLessThan(String value) {
            addCriterion("presalecoupon.UseRule <", value, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UseRule < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUseRuleLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.UseRule <=", value, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UseRule <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUseRuleLike(String value) {
            addCriterion("presalecoupon.UseRule like", value, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleNotLike(String value) {
            addCriterion("presalecoupon.UseRule not like", value, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleIn(List<String> values) {
            addCriterion("presalecoupon.UseRule in", values, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleNotIn(List<String> values) {
            addCriterion("presalecoupon.UseRule not in", values, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleBetween(String value1, String value2) {
            addCriterion("presalecoupon.UseRule between", value1, value2, "useRule");
            return (Criteria) this;
        }

        public Criteria andUseRuleNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.UseRule not between", value1, value2, "useRule");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("presalecoupon.Remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("presalecoupon.Remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("presalecoupon.Remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Remark = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("presalecoupon.Remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Remark <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("presalecoupon.Remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Remark > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.Remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Remark >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("presalecoupon.Remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Remark < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.Remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Remark <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("presalecoupon.Remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("presalecoupon.Remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("presalecoupon.Remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("presalecoupon.Remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("presalecoupon.Remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.Remark not between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andIsRefundIsNull() {
            addCriterion("presalecoupon.IsRefund is null");
            return (Criteria) this;
        }

        public Criteria andIsRefundIsNotNull() {
            addCriterion("presalecoupon.IsRefund is not null");
            return (Criteria) this;
        }

        public Criteria andIsRefundEqualTo(Integer value) {
            addCriterion("presalecoupon.IsRefund =", value, "isRefund");
            return (Criteria) this;
        }

        public Criteria andIsRefundEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.IsRefund = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRefundNotEqualTo(Integer value) {
            addCriterion("presalecoupon.IsRefund <>", value, "isRefund");
            return (Criteria) this;
        }

        public Criteria andIsRefundNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.IsRefund <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRefundGreaterThan(Integer value) {
            addCriterion("presalecoupon.IsRefund >", value, "isRefund");
            return (Criteria) this;
        }

        public Criteria andIsRefundGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.IsRefund > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRefundGreaterThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.IsRefund >=", value, "isRefund");
            return (Criteria) this;
        }

        public Criteria andIsRefundGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.IsRefund >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRefundLessThan(Integer value) {
            addCriterion("presalecoupon.IsRefund <", value, "isRefund");
            return (Criteria) this;
        }

        public Criteria andIsRefundLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.IsRefund < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRefundLessThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.IsRefund <=", value, "isRefund");
            return (Criteria) this;
        }

        public Criteria andIsRefundLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.IsRefund <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRefundIn(List<Integer> values) {
            addCriterion("presalecoupon.IsRefund in", values, "isRefund");
            return (Criteria) this;
        }

        public Criteria andIsRefundNotIn(List<Integer> values) {
            addCriterion("presalecoupon.IsRefund not in", values, "isRefund");
            return (Criteria) this;
        }

        public Criteria andIsRefundBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.IsRefund between", value1, value2, "isRefund");
            return (Criteria) this;
        }

        public Criteria andIsRefundNotBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.IsRefund not between", value1, value2, "isRefund");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeIsNull() {
            addCriterion("presalecoupon.DistributionSettleType is null");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeIsNotNull() {
            addCriterion("presalecoupon.DistributionSettleType is not null");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeEqualTo(Integer value) {
            addCriterion("presalecoupon.DistributionSettleType =", value, "distributionSettleType");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.DistributionSettleType = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeNotEqualTo(Integer value) {
            addCriterion("presalecoupon.DistributionSettleType <>", value, "distributionSettleType");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.DistributionSettleType <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeGreaterThan(Integer value) {
            addCriterion("presalecoupon.DistributionSettleType >", value, "distributionSettleType");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.DistributionSettleType > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.DistributionSettleType >=", value, "distributionSettleType");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.DistributionSettleType >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeLessThan(Integer value) {
            addCriterion("presalecoupon.DistributionSettleType <", value, "distributionSettleType");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.DistributionSettleType < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeLessThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.DistributionSettleType <=", value, "distributionSettleType");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.DistributionSettleType <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeIn(List<Integer> values) {
            addCriterion("presalecoupon.DistributionSettleType in", values, "distributionSettleType");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeNotIn(List<Integer> values) {
            addCriterion("presalecoupon.DistributionSettleType not in", values, "distributionSettleType");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.DistributionSettleType between", value1, value2, "distributionSettleType");
            return (Criteria) this;
        }

        public Criteria andDistributionSettleTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.DistributionSettleType not between", value1, value2, "distributionSettleType");
            return (Criteria) this;
        }

        public Criteria andShareTitleIsNull() {
            addCriterion("presalecoupon.ShareTitle is null");
            return (Criteria) this;
        }

        public Criteria andShareTitleIsNotNull() {
            addCriterion("presalecoupon.ShareTitle is not null");
            return (Criteria) this;
        }

        public Criteria andShareTitleEqualTo(String value) {
            addCriterion("presalecoupon.ShareTitle =", value, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareTitle = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareTitleNotEqualTo(String value) {
            addCriterion("presalecoupon.ShareTitle <>", value, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareTitle <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareTitleGreaterThan(String value) {
            addCriterion("presalecoupon.ShareTitle >", value, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareTitle > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareTitleGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.ShareTitle >=", value, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareTitle >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareTitleLessThan(String value) {
            addCriterion("presalecoupon.ShareTitle <", value, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareTitle < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareTitleLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.ShareTitle <=", value, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareTitle <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareTitleLike(String value) {
            addCriterion("presalecoupon.ShareTitle like", value, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleNotLike(String value) {
            addCriterion("presalecoupon.ShareTitle not like", value, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleIn(List<String> values) {
            addCriterion("presalecoupon.ShareTitle in", values, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleNotIn(List<String> values) {
            addCriterion("presalecoupon.ShareTitle not in", values, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleBetween(String value1, String value2) {
            addCriterion("presalecoupon.ShareTitle between", value1, value2, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareTitleNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.ShareTitle not between", value1, value2, "shareTitle");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionIsNull() {
            addCriterion("presalecoupon.ShareDescription is null");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionIsNotNull() {
            addCriterion("presalecoupon.ShareDescription is not null");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionEqualTo(String value) {
            addCriterion("presalecoupon.ShareDescription =", value, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareDescription = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareDescriptionNotEqualTo(String value) {
            addCriterion("presalecoupon.ShareDescription <>", value, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareDescription <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareDescriptionGreaterThan(String value) {
            addCriterion("presalecoupon.ShareDescription >", value, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareDescription > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareDescriptionGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.ShareDescription >=", value, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareDescription >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareDescriptionLessThan(String value) {
            addCriterion("presalecoupon.ShareDescription <", value, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareDescription < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareDescriptionLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.ShareDescription <=", value, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.ShareDescription <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andShareDescriptionLike(String value) {
            addCriterion("presalecoupon.ShareDescription like", value, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionNotLike(String value) {
            addCriterion("presalecoupon.ShareDescription not like", value, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionIn(List<String> values) {
            addCriterion("presalecoupon.ShareDescription in", values, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionNotIn(List<String> values) {
            addCriterion("presalecoupon.ShareDescription not in", values, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionBetween(String value1, String value2) {
            addCriterion("presalecoupon.ShareDescription between", value1, value2, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andShareDescriptionNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.ShareDescription not between", value1, value2, "shareDescription");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("presalecoupon.`Status` is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("presalecoupon.`Status` is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("presalecoupon.`Status` =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Status` = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("presalecoupon.`Status` <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Status` <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("presalecoupon.`Status` >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Status` > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.`Status` >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Status` >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("presalecoupon.`Status` <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Status` < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("presalecoupon.`Status` <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`Status` <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("presalecoupon.`Status` in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("presalecoupon.`Status` not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.`Status` between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("presalecoupon.`Status` not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNull() {
            addCriterion("presalecoupon.Deleted is null");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNotNull() {
            addCriterion("presalecoupon.Deleted is not null");
            return (Criteria) this;
        }

        public Criteria andDeletedEqualTo(Boolean value) {
            addCriterion("presalecoupon.Deleted =", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Deleted = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedNotEqualTo(Boolean value) {
            addCriterion("presalecoupon.Deleted <>", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Deleted <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThan(Boolean value) {
            addCriterion("presalecoupon.Deleted >", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Deleted > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanOrEqualTo(Boolean value) {
            addCriterion("presalecoupon.Deleted >=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Deleted >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedLessThan(Boolean value) {
            addCriterion("presalecoupon.Deleted <", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Deleted < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanOrEqualTo(Boolean value) {
            addCriterion("presalecoupon.Deleted <=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.Deleted <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedIn(List<Boolean> values) {
            addCriterion("presalecoupon.Deleted in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotIn(List<Boolean> values) {
            addCriterion("presalecoupon.Deleted not in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedBetween(Boolean value1, Boolean value2) {
            addCriterion("presalecoupon.Deleted between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotBetween(Boolean value1, Boolean value2) {
            addCriterion("presalecoupon.Deleted not between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andCreateUserIsNull() {
            addCriterion("presalecoupon.`CreateUser` is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIsNotNull() {
            addCriterion("presalecoupon.`CreateUser` is not null");
            return (Criteria) this;
        }

        public Criteria andCreateUserEqualTo(String value) {
            addCriterion("presalecoupon.`CreateUser` =", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`CreateUser` = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserNotEqualTo(String value) {
            addCriterion("presalecoupon.`CreateUser` <>", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`CreateUser` <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserGreaterThan(String value) {
            addCriterion("presalecoupon.`CreateUser` >", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`CreateUser` > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.`CreateUser` >=", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`CreateUser` >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserLessThan(String value) {
            addCriterion("presalecoupon.`CreateUser` <", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`CreateUser` < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.`CreateUser` <=", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.`CreateUser` <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserLike(String value) {
            addCriterion("presalecoupon.`CreateUser` like", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserNotLike(String value) {
            addCriterion("presalecoupon.`CreateUser` not like", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserIn(List<String> values) {
            addCriterion("presalecoupon.`CreateUser` in", values, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserNotIn(List<String> values) {
            addCriterion("presalecoupon.`CreateUser` not in", values, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserBetween(String value1, String value2) {
            addCriterion("presalecoupon.`CreateUser` between", value1, value2, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.`CreateUser` not between", value1, value2, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("presalecoupon.CreateTime is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("presalecoupon.CreateTime is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("presalecoupon.CreateTime =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CreateTime = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("presalecoupon.CreateTime <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CreateTime <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("presalecoupon.CreateTime >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CreateTime > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("presalecoupon.CreateTime >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CreateTime >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("presalecoupon.CreateTime <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CreateTime < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("presalecoupon.CreateTime <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.CreateTime <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("presalecoupon.CreateTime in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("presalecoupon.CreateTime not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("presalecoupon.CreateTime between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("presalecoupon.CreateTime not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIsNull() {
            addCriterion("presalecoupon.UpdateUser is null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIsNotNull() {
            addCriterion("presalecoupon.UpdateUser is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserEqualTo(String value) {
            addCriterion("presalecoupon.UpdateUser =", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateUser = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserNotEqualTo(String value) {
            addCriterion("presalecoupon.UpdateUser <>", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateUser <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserGreaterThan(String value) {
            addCriterion("presalecoupon.UpdateUser >", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateUser > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserGreaterThanOrEqualTo(String value) {
            addCriterion("presalecoupon.UpdateUser >=", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateUser >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserLessThan(String value) {
            addCriterion("presalecoupon.UpdateUser <", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateUser < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserLessThanOrEqualTo(String value) {
            addCriterion("presalecoupon.UpdateUser <=", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateUser <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserLike(String value) {
            addCriterion("presalecoupon.UpdateUser like", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNotLike(String value) {
            addCriterion("presalecoupon.UpdateUser not like", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIn(List<String> values) {
            addCriterion("presalecoupon.UpdateUser in", values, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNotIn(List<String> values) {
            addCriterion("presalecoupon.UpdateUser not in", values, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserBetween(String value1, String value2) {
            addCriterion("presalecoupon.UpdateUser between", value1, value2, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNotBetween(String value1, String value2) {
            addCriterion("presalecoupon.UpdateUser not between", value1, value2, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("presalecoupon.UpdateTime is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("presalecoupon.UpdateTime is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("presalecoupon.UpdateTime =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateTime = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("presalecoupon.UpdateTime <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateTime <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("presalecoupon.UpdateTime >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateTime > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("presalecoupon.UpdateTime >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateTime >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("presalecoupon.UpdateTime <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateTime < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("presalecoupon.UpdateTime <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualToColumn(PresaleCoupon.Column column) {
            addCriterion(new StringBuilder("presalecoupon.UpdateTime <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("presalecoupon.UpdateTime in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("presalecoupon.UpdateTime not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("presalecoupon.UpdateTime between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("presalecoupon.UpdateTime not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        private PresaleCouponExample example;

        protected Criteria(PresaleCouponExample example) {
            super();
            this.example = example;
        }

        public PresaleCouponExample example() {
            return this.example;
        }

        @Deprecated
        public Criteria andIf(boolean ifAdd, ICriteriaAdd add) {
            if (ifAdd) {
                add.add(this);
            }
            return this;
        }

        public Criteria when(boolean condition, ICriteriaWhen then) {
            if (condition) {
                then.criteria(this);
            }
            return this;
        }

        public Criteria when(boolean condition, ICriteriaWhen then, ICriteriaWhen otherwise) {
            if (condition) {
                then.criteria(this);
            } else {
                otherwise.criteria(this);
            }
            return this;
        }

        public Criteria andLogicalDeleted(boolean deleted) {
            return deleted ? andDeletedEqualTo(PresaleCoupon.Deleted.IS_DELETED.value()) : andDeletedNotEqualTo(PresaleCoupon.Deleted.IS_DELETED.value());
        }

        @Deprecated
        public interface ICriteriaAdd {
            Criteria add(Criteria add);
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }

    public interface ICriteriaWhen {
        void criteria(Criteria criteria);
    }

    public interface IExampleWhen {
        void example(com.ecoolex.hotel.saas.entity.PresaleCouponExample example);
    }
}